<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        /* 
            /[abc]/:表示只要匹配[]中的任意一个字符就可以了
        */
        const rg2 = /[abc]/;
        console.log(rg2.test("abbc"));  //true
        console.log(rg2.test("aabbc"));  //true
        console.log(rg2.test("abba"));   //true
        console.log(rg2.test("defc"));   //true
        console.log(rg2.test("gggsfff"));   //false
        console.log("========================");

        /* 
            从开始到结束只能够包含abc当中的1个字符
        */
        const rg3 = /^[abc]$/;
        console.log(rg3.test("abc"));  //false
        console.log(rg3.test("a"));  //true
        console.log(rg3.test("b"));   //true
        console.log(rg3.test("c"));   //true
        console.log(rg3.test("gggsfff"));   //false

        /* 
            匹配：[abcdef...z] -> 简写  [a-z]
         */
        console.log("========================");
        const rg4 = /^[a-z]$/;
        console.log(rg4.test("abc"));  //false
        console.log(rg4.test("a"));  //true
        console.log(rg4.test("b"));   //true
        console.log(rg4.test("c"));   //true
        console.log(rg4.test("e"));   //false

        /* 
            \w  匹配一个单字字符（字母、数字或者下划线）。等价于 [A-Za-z0-9_]。
            \W  匹配一个非单字字符。等价于 [^A-Za-z0-9_]。
            \d  匹配一个数字。等价于 [0-9]。
            \D  匹配一个非数字字符。等价于 [^0-9]。
            总结：如果在[]中出现^，表示取反的意思，不是开始的意思。
                出现在中括号里面和外面完全是二个意思。
         */
        console.log("========================");
        const rg5 = /^[\D]$/;
        console.log(rg5.test("_"));
        console.log(rg5.test("a"));
        console.log(rg5.test("b"));
        console.log(rg5.test("c"));
        console.log(rg5.test("E"));
        console.log(rg5.test("0"));
        console.log(rg5.test("5"));
        console.log(rg5.test("-"));
    </script>
</body>

</html>